package org.x.mq.model;

import java.util.UUID;

// 基础事件类
public abstract class BaseEvent {
    private String eventId;       // 事件唯一ID
    private long timestamp;       // 事件发生时间戳
    private String eventType;     // 事件类型
    private String source;        // 事件来源服务
    private Object data;          // 事件数据


    public BaseEvent(String eventType) {
        this.eventId = UUID.randomUUID().toString();
        this.timestamp = System.currentTimeMillis();
        this.eventType = eventType;
        this.source = getServiceName(); // 获取当前服务名
    }

    private String getServiceName() {
        // 实际项目中可以从配置获取
        return System.getProperty("spring.application.name", "unknown-service");
    }

    // 事件类型
    public String getEventType() {
        return eventType;
    }

    // 事件ID
    public String getEventId() {
        return eventId;
    }
    public long getTimestamp() {
        return timestamp;
    }

    // 事件来源服务
    public String getSource() {
        return source;
    }

}